<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>hello react</title>
    <style>
      .allStyle {
        background-color: aqua;
      }
    </style>
  </head>
  <body>
    <div id="test"></div>
    <!-- 引入react核心库 -->
    <script src="../js/react.development.js"></script>
    <!-- 引入react Dom库 用于支持 react操作dom-->
    <script src="../js/react-dom.development.js"></script>
    <!-- 引入babel 用于将 jsx 转为 js -->
    <script src="../js/babel.min.js"></script>

    <!-- 使用babel 转译jsx -->
    <script type="text/babel">
      const myId = "title";
      const myData = "hello React";

      // 1.创建虚拟DOM
      const VDOM = (
        <h1 className="allStyle" id={myId.toUpperCase()}>
          <span
            style={{
              color: "white",
              fontSize: "38px",
            }}
          >
            {myData.toUpperCase()}
          </span>
          <span
            style={{
              color: "white",
              fontSize: "38px",
            }}
          >
            {myData.toLowerCase()}
          </span>
        </h1>
      ); /* 此处一定不要加引号，因为不是字符串 */
      // 2.渲染虚拟DOM到页面
      ReactDOM.render(VDOM, document.getElementById("test"));
      // jsx语法规则
      // 1.定义虚拟DOM时  不需要些逗号
      // 2.标签混入js表达式需要使用 {},表达式会产生一个值(有返回值)
      // 3.样式的类名指定不要使用class，使用className
      // 4.内联样式，需要 style={{ key : value }}的方式
      // 5.jsx只能存在一个根标签
      // 6.标签必须闭合
      // 7.标签元素
      // 7.1：如果小写字母开头，则将改标签转为html中同名元素
      //      如果html中没有改标签对应的同名元素，则报错
      // 7.2：如果大写字母开头，react就去渲染对应的组件，
      //      如果组件没有定义，则报错
    </script>
  </body>
</html>
